import { get, post } from '../../utils/request';

/**
 * 用户登录接口
 * @param username 用户名
 * @param password 密码
 * @returns 登录结果，包含token
 */
export interface LoginResponse {
    code: number;
    msg: string;
    status: boolean;
    data: {
        token: string;
        userInfo: {
            username: string;
            userId: string;
            [key: string]: string | number | boolean | object;
        },
    };
    fail: boolean;
 
}

export const login = (username: string, password: string) => {
  // 创建URLSearchParams对象，适用于x-www-form-urlencoded格式
  const params = new URLSearchParams();
  params.append('username', username);
  params.append('password', password);
  
  // 使用表单格式提交
  return post<LoginResponse>('/api/starhub/user/login', params, {
    'Content-Type': 'application/x-www-form-urlencoded'
  });
};


/**
 * 获取当前用户信息
 * @returns 当前用户信息
 */
export const currentUser = (): Promise<any> => {
  return get('/api/starhub/user/current', {});
}

/**
 * 更新密码
 * @param id 用户ID
 * @param data 更新的数据
 * @returns 更新后的用户
 */
export const updatePassword = async (data: any) => {
  return post(`/api/starhub/user/updatePassword`, data);
};

/**
 * 更新用户信息
 * @param id 用户ID
 * @param data 更新的数据
 * @returns 更新后的用户
 */
export const updateUser = async (data: any) => {
  return post(`/api/starhub/user/updateUser`, data);
};
